package done.easy_701_800;

import com.study.common.TreeNode;
import org.junit.Test;

import static com.study.util.LogUtil.info;
import static java.lang.Math.min;

/**
 * 783. Minimum Distance Between BST Nodes  二叉搜索树结点最小距离
 * <p>
 * 给定一个二叉搜索树的根结点 root, 返回树中任意两节点的差的最小值。
 * <p>
 * 示例：
 * 输入: root = [4,2,6,1,3,null,null]
 * 输出: 1
 * 解释: 注意，root是树结点对象(TreeNode object)，而不是数组。
 * <p>
 * 给定的树 [4,2,6,1,3,null,null] 可表示为下图:
 * <p>
 * 4
 * /   \
 * 2      6
 * / \
 * 1   3
 * <p>
 * 最小的差值是 1, 它是节点1和节点2的差值, 也是节点3和节点2的差值。
 *
 * @author 大硕
 * 2019-04-11 11:58 PM
 **/
@SuppressWarnings("all")
public class MinimumDistanceBetweenBSTNodes {

    public int minDiffInBST(TreeNode root) {
        // 190412 first
        return -1;
    }

    @Test
    public void test() {
        TreeNode root = new TreeNode(4,
                new TreeNode(2,
                        1, 3), 6);
        info(minDiffInBST(root));
    }
}











































/*
int pre = -999;
int min = MAX_VALUE;

public int minDiffInBST(TreeNode root){
    dfs(root);
    return min;
}

public void dfs(TreeNode root){

    if(root != null){
        if(root.left != null)
            dfs(root.left);

        min = min(min, root.val - pre);
        pre = root.val;

        if(root.right != null)
            dfs(root.right);
    }
}
*/
